The _cccc_bbbb_rrrr_eeee_aaaa_kkkk and _nnnn_oooo_cccc_bbbb_rrrr_eeee_aaaa_kkkk routines put the terminal into and out of _cccc_bbbb_rrrr_eeee_aaaa_kkkk
mode, respectively. In this mode, characters typed by the user are
immediately available to the program, and erase/kill character-processing
is not performed. When out of this mode, the tty driver buffers the
typed characters until a newline or carriage return is typed. Interrupt
and flow control characters are unaffected by this mode. Initially the
terminal may or may not be in _cccc_bbbb_rrrr_eeee_aaaa_kkkk mode, as the mode is inherited;
therefore, a program should call _cccc_bbbb_rrrr_eeee_aaaa_kkkk or _nnnn_oooo_cccc_bbbb_rrrr_eeee_aaaa_kkkk explicitly. Most
interactive programs using _cccc_uuuu_rrrr_ssss_eeee_ssss set the _cccc_bbbb_rrrr_eeee_aaaa_kkkk mode.
Note that _cccc_bbbb_rrrr_eeee_aaaa_kkkk overrides _rrrr_aaaa_wwww. [See curs_getch(3X) for a discussion of
how these routines interact with _eeee_cccc_hhhh_oooo and _nnnn_oooo_eeee_cccc_hhhh_oooo.]
The _eeee_cccc_hhhh_oooo and _nnnn_oooo_eeee_cccc_hhhh_oooo routines control whether characters typed by the user
are echoed by _gggg_eeee_tttt_cccc_hhhh as they are typed. Echoing by the tty driver is
always disabled, but initially _gggg_eeee_tttt_cccc_hhhh is in echo mode, so characters typed
characters are all passed through uninterpreted, instead of generating a
signal. The behavior of the BREAK key depends on other bits in the tty
driver that are not set by _cccc_uuuu_rrrr_ssss_eeee_ssss.
When the _nnnn_oooo_qqqq_iiii_ffff_llll_uuuu_ssss_hhhh routine is used, normal flush of input and output
queues associated with the _IIII_NNNN_TTTT_RRRR, _QQQQ_UUUU_IIII_TTTT and _SSSS_UUUU_SSSS_PPPP characters will not be
done [see termio(7)]. When _qqqq_iiii_ffff_llll_uuuu_ssss_hhhh is called, the queues will be flushed
when these control characters are read.
The _tttt_iiii_mmmm_eeee_oooo_uuuu_tttt and _wwww_tttt_iiii_mmmm_eeee_oooo_uuuu_tttt routines set blocking or non-blocking read for a
given window. If _d_e_l_a_y is negative, blocking read is used (_i._e., waits
indefinitely for input). If _d_e_l_a_y is zero, then non-blocking read is
used (_i._e., read returns _EEEE_RRRR_RRRR if no input is waiting). If _d_e_l_a_y is
positive, then read blocks for _d_e_l_a_y milliseconds, and returns _EEEE_RRRR_RRRR if
there is still no input. Hence, these routines provide the same
functionality as _nnnn_oooo_dddd_eeee_llll_aaaa_yyyy, plus the additional capability of being able to
block for only _d_e_l_a_y milliseconds (where _d_e_l_a_y is positive).
_cccc_uuuu_rrrr_ssss_eeee_ssss does ``line-breakout optimization'' by looking for typeahead
periodically while updating the screen. If input is found, and it is
coming from a tty, the current update is postponed until _rrrr_eeee_ffff_rrrr_eeee_ssss_hhhh or
_dddd_oooo_uuuu_pppp_dddd_aaaa_tttt_eeee is called again. This allows faster response to commands typed
in advance. Normally, the input FILE pointer passed to _nnnn_eeee_wwww_tttt_eeee_rrrr_mmmm, or _ssss_tttt_dddd_iiii_nnnn
in the case that _iiii_nnnn_iiii_tttt_ssss_cccc_rrrr was used, will be used to do this typeahead
checking. The _tttt_yyyy_pppp_eeee_aaaa_hhhh_eeee_aaaa_dddd routine specifies that the file descriptor _f_d is
to be used to check for typeahead instead. If _f_d is -1, then no
typeahead checking is done.
RRRREEEETTTTUUUURRRRNNNN VVVVAAAALLLLUUUUEEEE
All routines that return an integer return _EEEE_RRRR_RRRR upon failure and an
integer value other than _EEEE_RRRR_RRRR upon successful completion, unless otherwise
noted in the preceding routine descriptions.
NNNNOOOOTTTTEEEESSSS
The header file _<<<<_cccc_uuuu_rrrr_ssss_eeee_ssss_...._hhhh_>>>> automatically includes the header files
_<<<<_ssss_tttt_dddd_iiii_oooo_...._hhhh_>>>> and _<<<<_uuuu_nnnn_cccc_tttt_rrrr_llll_...._hhhh_>>>>.
Note that _eeee_cccc_hhhh_oooo, _nnnn_oooo_eeee_cccc_hhhh_oooo, _hhhh_aaaa_llll_ffff_dddd_eeee_llll_aaaa_yyyy, _iiii_nnnn_tttt_rrrr_ffff_llll_uuuu_ssss_hhhh, _mmmm_eeee_tttt_aaaa, _nnnn_oooo_dddd_eeee_llll_aaaa_yyyy, _nnnn_oooo_tttt_iiii_mmmm_eeee_oooo_uuuu_tttt,
_nnnn_oooo_qqqq_iiii_ffff_llll_uuuu_ssss_hhhh, _qqqq_iiii_ffff_llll_uuuu_ssss_hhhh, _tttt_iiii_mmmm_eeee_oooo_uuuu_tttt, and _wwww_tttt_iiii_mmmm_eeee_oooo_uuuu_tttt may be macros.